1. Field of the Invention
The present invention relates in one embodiment to a dual microphone end firing array. A standard headset consists of an ear cup with a microphone pickup arm. In this invention embodiment two microphones are attached to the ear cup and are configured as an end firing array. The end firing array suppresses unwanted sounds using an adaptive spectral method and spectral subtraction. According to a second embodiment, automatic calibration of an end-firing microphone array is provided.
2. Background for Arrays
Current ending firing implementations create directional nulls in the directivity pattern of the microphone array. In a reverberate environment the noise source may not come from a single direction. Accordingly, what is needed is an effective and simple system and method to improve the pickup of desired audio signals.
In a system with 2 or more microphones, which has subsequent signal processing, a proper balance of the microphones may be required for the subsequent signal processing to perform within design parameters. Existing solutions to the balance problem are: a) careful selection of matched microphones; or b) manual calibration by injection of a diagnostic tone, measurement, and persistent storage of the compensation coefficient. In contrast, a present invention embodiment features an automatic and continuous calibration of an unmatched pair of microphones arranged in a known configuration to be used with an input source in a known location, e.g. a pair of headphones.
A standard headset consists of one (or two) ear cups and a microphone pickup arm. The arm positions a microphone in front of the user's mouth and picks up the user's voice and back ground noises. Placing the microphone close to the wearer's mouth allows the user's voice to be heard over most background sounds. The drawback is that these headsets can be annoying to wear.
Reference Signals
In this application we propose a method to replace the microphone arm with microphones placed on the ear cup of the headset. To reduce the background noise and improve the near field voice pickup we use an end firing dual microphone array. The microphones are configured to create two cardioid arrays. The null of the rear facing cardioid is positioned to point in the direction of the desired signal and the front cardioid's null points in the opposite direction. The rear facing cardioid signal is used as a reference signal to determine any similarities with the front cardioid. We then subtract any similarities knowing that the front facing cardioid is the only signal that contains direct speech. We use a frequency based adaptive method to estimate these similarities with the adaption updating only when there is no direct speech detected. For residual suppression we use spectral subtraction. Spectral subtract is also used when speech is detected to remove background noises.
End Firing Algorithm
The end firing arrays have been used in Bluetooth headsets and hearing aids to pick up the user's voice while helping to suppress the back ground noise. In this section we review some of the current methods. One method can be described as a null-forming scheme where a null in the directivity pattern is steered in the direction of the noise source. Another method, however, is to create a noise reference signal from the array which is then subtracted from the desired signal. We begin by discussing the cardioid array as we use this array.
Cardioid
Two omnidirectional microphones can be used to create a directional microphone by adding a delay τ to one of them. For example, in FIG. 1, the end firing array 100 includes front microphone 301 and rear microphone 302 having a distance d between them. A delay block 303 is used to create a directional microphone. If we consider a plane sound wave P0 (w)e(iwt−k.r) arriving from a direction θ, then for two omnidirectional microphones placed a distance d apart their pressure difference is
                              P          ⁡                      (                          w              ,              θ                        )                          =                                            P              0                        ⁡                          (              w              )                                ⁢                      (                          1              -                              e                                                      -                    j                                    ⁢                                                                          ⁢                                      w                    ⁡                                          (                                              r                        +                                                                              d                            c                                                    ⁢                          cos                          ⁢                                                                                                          ⁢                          θ                                                                    )                                                                                            )                                              [        2.1        ]                                          P          ⁡                      (                          w              ,              θ                        )                          =                  2          ⁢          j          ⁢                                          ⁢                                    P              0                        ⁡                          (              w              )                                ⁢                      e                                          -                j                            ⁢                              w                2                            ⁢                              (                                  r                  +                                                            d                                              c                        ⁢                                                                                                                                        ⁢                    cos                    ⁢                                                                                  ⁢                    θ                                                  )                                              ⁢                      sin            ⁡                          (                                                w                  2                                ⁢                                  (                                      r                    +                                                                  d                        c                                            ⁢                      cos                      ⁢                                                                                          ⁢                      θ                                                        )                                            )                                                          [        2.2        ]                                                                P            ⁡                          (                              w                ,                θ                            )                                                =                  2          ⁢                                          ⁢                                    P              0                        ⁡                          (              w              )                                ⁢                                                sin              ⁡                              (                                                      w                    2                                    ⁢                                      (                                          r                      +                                                                        d                          c                                                ⁢                        cos                        ⁢                                                                                                  ⁢                        θ                                                              )                                                  )                                                                                    [        2.3        ]            
If we let the delay
      τ    =          d      c        ,where c is the speed of sound and d is the distance between the microphones, then we get the directivity pattern shown in FIG. 2A, the cardioid. By varying the delay τ we obtain different directivity patterns, see FIGS. 2B and 2C where for FIG. 2B τ=d/3c (hypercardioid) and for FIG. 2C τ=2d/3c (supercardioid). We can see from these figures that by varying τ we can change the position of the null. Thus, if we know that a sound (noise) comes from a fixed direction, and wish to suppress it, then we can adjust the value of τ to move the null to that direction. Creating a directional microphone using delays and summing has been known.
We saw that we can steer a null to a certain direction by adjusting the delay. In a digital system this would require us to implement a fractional interpolator, we can avoid this if we use two omnidirectional microphones to form front and back dual microphone end firing arrays, see FIG. 3. Two delay blocks 104 and 105 are used in addition to gain bloc “b” (107. For example lety(t)=c1(t)−b*c2(t)  [2.4]then for b=1 we get FIG. 4A. As we vary b in the interval 0≦b≦1.0 we can adjust the position of the null angle θ between π/2≦θ≦πC. In a digital system it is easier to vary the gain rather than a fractional delay. (FIG. 4 shows front and rear cardioids for b=1.0 (FIG. 4A); b=0.75 (FIG. 4B); b=0.5 (FIG. 4C); and b=0.25 9 FIG. 4D).
If we let
  τ  =      c    d  then the expressions for the front and rear cardioid signals are
                              c          f                =                  2          ⁢                                          ⁢          j          ⁢                                          ⁢                                    P              0                        ⁡                          (              w              )                                ⁢                                    e                                                -                  j                                ⁢                                  kd                  2                                ⁢                                  (                                      1                    +                                          cos                      ⁢                                                                                          ⁢                      θ                                                        )                                                      ⁡                          (                              sin                ⁡                                  (                                                            kd                      2                                        ⁢                                          (                                              1                        +                                                  cos                          ⁢                                                                                                          ⁢                          θ                                                                    )                                                        )                                            )                                                          [        2.5        ]                                          c          r                =                  2          ⁢                                          ⁢          j          ⁢                                          ⁢                                    P              0                        ⁡                          (              w              )                                ⁢                                    e                                                -                  j                                ⁢                                  kd                  2                                ⁢                                  (                                      1                    -                                          cos                      ⁢                                                                                          ⁢                      θ                                                        )                                                      ⁡                          (                              sin                ⁡                                  (                                                            kd                      2                                        ⁢                                          (                                              1                        -                                                  cos                          ⁢                                                                                                          ⁢                          θ                                                                    )                                                        )                                            )                                                          [        2.6        ]            where k is the wave number k=ω/c.
In FIG. 5 we show an adaptive signal processing method to adjust the value of the parameter b in Eq 2.4. FIG. 5 shows adaptive front and back dual microphones 301, 302; the delay blocks 304, 305; and the adaptive gain adjustment block 308. The desired signal is contained in the front facing cardioid array and not in the rear. But the front facing cardioid contains speech plus ambient noise while the rear contains ambient noise and reflected speech. To reduce the ambient noise we can find the cross correlation between y and cr, see Eq 2.4. We can use the well known normalized least mean square (LMS) to do this. This normalized adaptive method reduces the least mean square E(y2) by using the method of steepest descent to find a minimum. That is, small changes are made to the adjustable parameters to reduce E(y2). In Eq 2.4 we only have one parameter to adjust, b to reduce the cross correlation between y and cr. The normalized adaptive method reduces the least mean square E(y2) by using the update
                    b        =                  b          +                      μ            ⁢                                                            y                  ⁡                                      (                    n                    )                                                  *                                  cr                  ⁡                                      (                    n                    )                                                                              Σ                ⁡                                  (                                      cr                    2                                    )                                                                                        [        2.7        ]            
for b, where μ is a small parameter and Σ(cr2) is the averaged smoothed power of cr. In the above method we have a single parameter b that we can change to reduce the ambient noise. If we band pass the signals, creating say 8 bands then we can use 8 coefficient b0, b1, . . . , b7 and the LMS algorithm 2.7 for each band to adjust bi, to improve the suppression. This method can be used to create nulls in each of the bands.
In FIG. 6 we show a range of frequency sweeps for four different angular directions, θ=0°, 30°, 60° and 90° (see 602, 604, 606, and 608). It illustrates a plot of the variation of the magnitude with frequency for τ=d/c and for θ=0°, 30°, 60° and 90°. Thus as the speaker moves out of the lobe of the pickup directivity pattern the signal is suppressed. From these sweeps we see that by equalizing the microphone signal we still preserve this directional behavior, all the curves have the same constant slope. As can been seen in 6 the cardioid acts as a high pass. To compensate for this behavior we equalize the microphone signal by creating a mirror image of the cardioid high pass behavior. FIG. 7 shows a compensate for a cardioid and this is implemented in the box labeled FILTER 511 in FIG. 5 (see also Eq 2.5).
All microphone have some residual noise and by equalizing the cardioid end array this residual noise will be amplified. The closer the microphones are placed together the greater the amplification needed. If we double the spacing between the microphones from 1 cm to 2 cm, for example, we boost the cardioid signal by about 6 dB, requiring less equalization gain. But as the delay τ is determined by the sample rate for convenience the microphones separation is τ*c, where c is the speed of sound.
Up until now we have assumed that the microphones have ideal, flat responses. This is far from true and methods are sometimes need to compensate for the variability. Microphones manufactures normally specify sensitivity at 1 kHz and provide an envelop of variability for frequencies about and below this value. The variability can exceed 10 dB for some frequency values and this will obviously affect the performance of the suppression of the cardioids. In a later section we shall describe a method to match the microphones in a number of different bands and the method used to suppress unwanted noises.